export { default as ComponentType } from './ComponentType';
export { default as FieldCtrl } from './FieldCtrl';
export { default as DataStatus } from './DataStatus';
export * from './FinderConfig';
import {appComponentType} from "./AppComponentType";

export const IS_DEV = 'development' == process.env.NODE_ENV;

export const STATIC_ROOT = '/3rd';// 静态资源子系统 "development" == process.env.NODE_ENV ? 'http://localhost/3rd' : '/3rd';
export const AFC_ROOT = '/'; // afc 主系统
export const BI_ROOT = '/bi'; // 报表子系统
export const FLOW_ROOT = '/flow'; // 流程图子系统
export const PM_ROOT = '/pm'; // 项目管理子系统
export const REGISTER_ROOT = '/register'; // 注册中心子系统

/**
 * 在 localeStorage 中的 key
 * @type {{USER_INFO: string, LOCALE_FORMAT_KEY: string, LOCALE: string, TIMEOUT_ROUTE: string, SHOWING_TIMEOUT: string, ACCOUNT_INFO: string}}
 */
export const STORAGE_KEY = {
    USER_INFO: 'userInfo', // 用户信息 key
    USER_DEFAULT_INFO: 'userDefaultInfo', // 用户默认站点、部门、责任中心信息 key
    ACCOUNT_INFO: 'accountInfo', // 账号信息 key
    LOCALE: 'umi_locale', // 当前国际化语言 key
    LOCALE_FORMAT_KEY: 'LIB_LOCALE_FORMAT_KEY', // 缓存中文国际化的 key，用于给 formatMsgByCn 方法提速
    TIMEOUT_ROUTE: 'TIMEOUT_ROUTE', // 登录过期前的路由 key。用于在登录之后，跳转回这个登录过期前的路由
    SHOWING_TIMEOUT: 'SHOWING_TIMEOUT', // 标识是否正在显示“登录过期弹框” key
    NEED_RESET_PSW: 'NEED_RESET_PSW', // 标识是否需要强制重置密码 key
    JH_VERSION: 'JH_VERSION', // 标识"各子项目的版本"
};


/**
 * 本系统的日期格式
 * @type {string}
 */
export const systemDateFormat = 'YYYY-MM-DD';
export const systemDateTimeFormat = 'YYYY-MM-DD HH:mm:ss';

/**
 * 支持输入的日期格式，一般用于设置 DatePicker 组件的 format 属性
 */
export const DateFormats = ['YYYY-MM-DD', 'YYYY/MM/DD', 'YYYYMMDD', 'YYYY-M-D', 'YYYY/M/D'];

export const TableBarActions = {
    add: 'add',
    insert: 'insert',
    batchAdd: 'batchAdd',
    delete: 'delete',
    down: 'down',
    up: 'up',
    sort: 'sort',
    copy: 'copy',
    cut: 'cut',
    paste: 'paste',
};

/**
 * 表单组件的默认宽度。用于
 * @type {string}
 */
export const CompDefaultWidth = '240px';

/**
 * 组件的属性类型
 */
export const PROP_TYPES = {
    /**
     * 关联条件
     */
    CONDITION: 'CONDITION',
    /**
     * 查找器
     */
    FINDER: 'FINDER',
    /**
     * 普通按钮组
     */
    JSX_BUTTONS: 'JSX_BUTTONS',
    /**
     * 上下文按钮组
     */
    JSX_CTX_BUTTONS: 'JSX_CTX_BUTTONS',
    /**
     * 选择 icon
     */
    JSX_ICON: 'JSX_ICON',
    // /**
    //  * 以弹框的方式编辑 画布；比如：DetailTable 的 弹框内容配置
    //  */
    // JSX_MODAL: 'JSX_MODAL',
    /**
     * 以弹框的方式编辑 画布；比如：DetailTable 的 弹框内容配置
     */
    JSX_MODAL: 'JSX_MODAL',
    /**
     * 只读；只用于数据展示
     */
    SORT: 'SORT',
    /**
     * 只读；只用于数据展示
     */
    FORMAT: 'FORMAT',
    /**
     * 只读；只用于数据展示
     */
    READ_ONLY: 'READ_ONLY',
    /**
     * 表格；用于设置表格的列属性
     */
    TABLE_COL: 'TABLE_COL',
    /**
     * 单选元数据
     */
    META_SINGLE: 'META_SINGLE',
    /**
     * 用 JSX 编辑，渲染时传递 Array；比如用于 表格搜索条件
     */
    JSX_ARRAY: 'JSX_ARRAY',
    /**
     * JSX 子组件
     */
    JSX: 'JSX',
    /**
     * 下拉框
     */
    SELECT: 'SELECT',
    /**
     * 下拉框，且可自定义输入
     */
    SELECT_INPUT: 'SELECT_INPUT',
    /**
     * 多选 下拉框
     */
    SELECT_MULTI: 'SELECT_MULTI',
    /**
     * 文本
     */
    TEXT: 'TEXT',
    /**
     * 数字
     */
    NUMBER: 'NUMBER',
    /**
     * 勾选
     */
    CHECKBOX: 'CHECKBOX',
};

/**
 * 表单的记录组件配置的公共基础配置
 * @type {{labelWidth: {defaultValue: number, name: string, editType: string, required: boolean}}}
 */
export const FormCompConfigBasic = {
    'compLabel': {
        'required': false,
        'name': '标签',
        'editType': PROP_TYPES.TEXT,
        'defaultValue': '',
    },
    'labelWidth': {
        'required': false,
        'name': '标签宽度',
        'editType': PROP_TYPES.NUMBER,
        'defaultValue': 77,
    },
};

/**
 * 组件在不同端下的通用属性设置，用于界面设计器使用
 * @type {{APP: {}, WEB: {}}}
 */
export const commonConfig = {
    'WEB': {

    },
    'APP': {
        "appComponentType": {
            "required": false,
            "name": "关联移动端组件",
            "editType": PROP_TYPES.SELECT,
            "values": appComponentType,
            "defaultValue": ""
        },
    }
};